package cn.itcast.bos.test.produce;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.Test;

public class ActiveMQProducer {

	
	@Test
	public void testActiveMq() throws Exception{
		// 连接工厂
		// 使用默认用户名、密码、路径
		// 因为：底层实现：final String defaultURL = "tcp://" + DEFAULT_BROKER_HOST + ":" + DEFAULT_BROKER_PORT;
		// 所以：路径 tcp://host:61616
		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
		
		// 获取一个连接
		Connection connection = connectionFactory.createConnection("admin", "admin");
		//开启连接
		connection.start();
		// 建立会话
		/** 第一个参数，是否使用事务
					如果设置true，操作消息队列后，必须使用 session.commit();
					如果设置false，操作消息队列后，不使用session.commit();
				*/
				
		//建立回话
		Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
		// 创建队列或者话题对象，HelloWorld为队列名称
		Queue queue = session.createQueue("helloworld");
		// 创建队列或者话题对象，HelloWorld为队列名称
		MessageProducer producer = session.createProducer(queue);
		
		//发送消息
		for(int i = 0;i<10;i++){
			TextMessage textMessage = session.createTextMessage("helloMq"+i);
			producer.send(textMessage);
			
		}
		session.commit();
		
	}
	
}




